Process of forming time-variant filters for filtering seismic data

ABSTRACT

The specification discloses a process of forming a set of timevariant filters from an input set of filters having predetermined start times. The center frequency and envelope frequency of the input filters are determined and filters are interpolated between adjacent input filters, based upon the difference in center frequency between the adjacent input filters. In the embodiment disclosed, the number of filters interpolated between adjacent input filters is equal to the number of integer frequency changes between adjacent input filters minus one. The envelope frequencies of the interpolated filters are determined by a linear interpolation between the envelope frequencies of adjacent input filters and the interpolated filters are placed at equally spaced time intervals between adjacent input filters. The length of the input filters and interpolated filters are determined as inversely proportional to their envelope frequencies. The time responses of the filters are determined and truncated with a special truncator.

United States Patent 3,701,091 Lenihan 1 Oct. 24, 1972 [54] PROCESS OF FORMING TIME- Primary Examiner-Benjamin A. Borchelt VARIANT FILTERS FOR FILTERING SEISMIC DATA [72] Inventor: Jeremiah P. Lenihan, Carrollton,

Tex.

[73] Assignee: Mobil Oil Corporation [22] Filed: Feb. 19, 1971 [21] Appl. No.: 116,788

[52] US. Cl....340/15.5 AF, 340/155 DP, 324/77 R,

[51] Int. Cl. ..G01r 1/28 [58] Field of Search ...340/l5.5 DP, 15.5 AF, 15.5 F; 324/77 R; 444/ l [56] References Cited UNlTED STATES PATENTS 3,281,776 10/1966 Ruehle ...340/l5.5 AF

3,393,402 7/1968 Bemrose.... ..340/15.5 F

3,396,365 8/1968 Kerns ..340/15.5 F

3,581,274 5/1971 Ruehle ..340/15.5 AF

I CALC RESPONSE w I FOR KAY FILTERS a LOAD IN CONVOLUTION I i I7 I CALCULATE HALF RESPONSE FOR ITH FILTER /2/ 'I I L|M=|DF(ll/2 I 'I I NOT CENTER POINT 39 ZUF'P= POWER OF RESPONSE SUPP= D.C.VALUE OF RESPONSE PHY USED IN TRUNCATOR TRuNc=cos(; T')-(L' l) {n FILTER LENGTH ,'T=TIMEON RESPONSE 5 CA LC.

i ZUPESUPP stim -FIT) nc. FOR I/2 RESPONSE TRUNCATOR (ABOVE) FOR l 2 RESPONSE AVG D.C.PER4SAMPLE FOR TOTAL RESPONSE I EACH RESPONSE TO BE *2 DIVIDED BY v PWR TOTAL POWER 6 NORMALIZED T0 2' ADJUST TO one.

APPLY ZUPP FACTOR FIX RESPONSE WHILE FILLING our TOTAL RESPONSE I +I FILT IS ONE UP IN NDF FROM I FILT FILL IN CENTER OF RESPONSE ZERO OUT ENDS OF RESPONSE PACK,LOAD AND RETAIN FILTER RESPONSE IN CONVOLUTION BOX [57] ABSTRACT The specification discloses a process of forming a set of time-variant filters from an input set of filters having predetermined start times. The center frequency and envelope frequency of the input filters are determined and filters are interpolated between adjacent input filters, based upon the difference in center frequency between the adjacent input filters. In the embodiment disclosed, the number of filters interpolated between adjacent input filters is equal to the number of integer frequency changes. between adjacent input filters minus one. The envelope frequencies of the interpolated filters are determined by a linear interpolation between the envelope frequencies of adjacent input filters and the interpolated filters are placed at equally spaced time intervals between adjacent input filters. The length of the input filters and interpolated filters are determined as inversely proportional to their envelope frequencies. The time responses of the filters are determined and truncated with a special truncator.

9 FILTER/SET READ BI PRINT INPUT DATA {I FLAG SETS OF FILTERS BI TIMES K IS INDEX RJR COMPLETE OUTPUT INTERPOLATED SET IIS INDEX FOR INPUT SET NFZECENTER FREQ.= .S-X-(F: +Fz )(INTEGER) 1T= START SAMPLE FOR K FILTER lDF= SAMPLE LENGTH FOR K FILTER DETERMINE 1T, IDF, NFZ, F

NO. NFZ CHANGES (INTEGER) BETWEEN I Bi [T I INPUT= NO. FILTS TO BE INTERPOLATED USE f CHANGE TO GET OBTAIN CONSTANTS TO BE USED IN INTER POLATION LOOP {J SUBSCRIPT=K 00 e J JJQMJ !INTERPOLATION FOR FILTERS E co NrIiIJE |T(l) T I51 SAMPLE ISTSTART TIME KAY K KAY FILTERS IN set so LIMIT 0000 00 000.000 00 00 0000 092 00 2 00; 0 o0o0 0000 00 0.0 00 0 00 0 0Q; 0 0 0000 00 0000 00 00 00 00 00 00 00 9 00 9 m 0000 0000 00 0 40 0 m 0m 0 00 2 0 0 0000 0000 00 00 00 00 00 000 00 0 0 0 0 U 0000 00 200; m 0000 00 00 000 00 0 00 0 0 0000 N0 002 00 00.00 000m 00 ow 0 0w 0 0 1 0000 00 500 00 00 00 00 00 00 0. 00 00 0 h 0 000060 0000 00 00 0 0 0060 00 00. 0. 0 0 7 009x00 0000 00 00 00 00 00 00 0 00 0 00 0 0 0000mm 0000 00 00 00 00 00 00 0 00 0 000 3 0000 00 00 00 00 00 00 00 00 00 0 0.0 0 00 0 0 0000 00 000900 0000 N060 mmuw 00 N00 0 0000 00 03000 0000 00 00 000 00 0 00 0 .0 0000 00 :1 00 mmNm mmfim 00 0 0.0 0 00 0 0 b00000 02m N000 N000 00 0 00 0 00 0 0 0000 0 20000 00 00 0000 099 00H0 092 0 000000 #00000 00 m 00 0 00 0 002 v0 0 0000 000 0000 00 0.0 00 00 00 00 0 00 0 00 0 0000 40 000:1 0000 0000 00 0 000. 0Hm 000000 00003 0000 000.0 00 0 00 0 0h 0 000.000 Emit 0 .0 00 00 00 00 0 00 0 00 3 m 000000 00000 00 00 00 9 00 0 00 0 2 0000 00 b00000 00 0 0 00 00 00 0 00 0 00H0 0 0000 00 000 00 0 00 0 00 0 00 0. 00: 0000 .0 :00 00 00 00 00 00 00 0 00 0 0 0 2 T... 0000 00 0000 00 000w 000* 00 0 00 9 00 0 F. 000000 000000 000w 000% 00 00 00 0 M 0000 00 0000; 0 00 00 00 0 00 00 00 0 8 0000 00 0000 00 00 0 00 0 00 N 00 N 00 0 .fimmmhzm 0000 00 0 0 v0 00 00 00 00 00 00 00 0w ow ommmpg 0000 00 002 00 00400 0000 00 0 00 0 00 00 0 0000 0 0000 00 00 00 00 00 00 0 00 0. 0040 0000 00 NO0H00 00 N0 00 00 0041 0041 00; N 0000 00 00inch 00 00 00 00 00 3 0041 00 mm 0 0000 00 mmofimh 00 00 00 00 00 0 00 0: 00 00 M 05 5200 E E N. E 00 T c U n E M F I 0 00.2.0". mmEuE .0 000232 m0 mw 0:0. 002:. 020 0005i .502. M 00000 0. 550200 .5200 05 PATENTED B 24 I97? 3 TO 1. 091 SHEET 0-70F 11 Lo Q 10 5 AMP o- RECT TRUNCATOR TRAP TRUNCATOR TR! TRUNCATOR 4 COSLIN TRUNCATOR 200 MIL 2O 6O S'NC TRUNCATOR AM PLITUDE SPECTRA PATENTEIIIcm I972 3.701. 091

SHEET 08 0F 11 READ a PRINT I FLAG SETS OF FILTERS 8. TIMES INPuT DATA 9 FILTER/SET I01 I a DO 9 1:1 9 K IS INDEX FDR COMPLETE OUTPUT INTERPDLATED SET IIS INDEX FDR INPUT SET 10.2 NFZ ECENTER FRED. .5*(F3 +Fz )(INTEGERI Fe 5 ENvELDPE FREQ.=.25* (F4+F3F2F1)(FLOAT) DETERM'NE FFA- FFD= FREQS. FDR KTH FILTER NFZ, c IT=START SAMPLE FOR I FILTER IDF= SAMPLE LENGTH FDR K FILTER l05 FIND NM No. NFz CHANGES (INTEGER) ITH- ITH+I BETWEEN 1 a1T +I INPuT= NDFILTS TD BE INTERPOLATED 104 4 SINCE fi NFZ1= NFZ1+1 a K K+1 I FBI= FBI+I LET FILT(I+I)=FILT(I) uSE f CHANGE TD GET 1/0 W OBTAIN cDNSTANTS TD BE USED IN INTERPDLATIDN LDDP D08 J=-JJ,MJ {JSUBSCRIPT=K INTERPOLATION s FDR FILTERS BETWEEN N 8. y I] 1T +I INPUT #5 9 cDNTINuE IT(II I SAMPLE M START TIME KAY K KAY FILTERS IN SET 80 LIMIT PIIIEIIIEI'IIIII2 I912 3.101. 091

SHEET USUF 11 6 '4 I KAY CALC RESPONSE FOR KAY FILTERS a LOAD IN coNvoLuTloN CALCULATE HALF RESPONSE FOR ITH FILTER "1 LIM IDF (l)/2 NOT CENTER POINT zuPP= POWER OF RESPONSE suPP= D.C.VALUE OF RESPONSE {PHY USED IN TRUNCATOR TRuNc=cos(-I L-'r)-( T= FILTER LENGTH,'T=TIMEON RESPONSE I zuPP= F(T) POWER FOR I/2 RESPONSE cALc. LIM ZUPPSUPP SUPP=FITI 0.0. FOR I/2 RESPONSE 8 500 TRUNCATE TRUNCATOR (ABOVE) FOR l/2 RESPONSE 1.2 4 I 3/2.? I

suPP=I2suPP+ I )llDF AVG 0.0-. PER SAMPLE FOR TOTAL RESPONSE I EACH RESPONSE TO BE /25\ *2' DIVIDED BY VPWR V2 l6 TOTA P ]zuPP-[I/I2zuPP+II] +g OWER a NORMAUZED To ADJUST To 00.0.

D 2 APPLY zuPP FACTOR FIX RESPONSE WHILE FILLING OUT TOTAL RESPONSE I +I FILT IS ONE uP IN NDF FROM I FILT FILL IN CENTER OF RESPONSE ZERO OUT ENDS OF RESPONSE PACK,LOAD AND RE'I'AIN FILTER RESPONSE IN CONVOLUTION BOX BACKGROUND OF THE INVENTION sought after signals as it changes down the record.

Conventional practice is to convert or record the seismic traces in digital form and to filter the data with digital filters in the time domain by convolution.

Problems have existed in applying more than one digital filter to a seismic trace in that the time response of one filter may be abruptly dissimilar to that of another. The convolution of an input time series with abruptly different filters produces an undesirable discontinuity on the output.

SUMMARY OF THE INVENTION In accordance with the present invention, there is provided a unique process of determining a set of timevariant filters wherein the time responses of adjacent filters are very similar, thereby resulting in an improved output when employed to filter seismic data. The process is carried out in an automatic computing system and forms a set of time-variant filters from an input set of filters having predetermined start times. In

carrying out the process, there are determined the center frequency and envelope frequency of adjacent input filters of the input set. Filters then are interpolated between adjacent input filters. The envelope frequencies of the interpolated filters are determined and the length of the input filters and interpolated filters are determined as inversely proportional to their envelope frequencies.

In a further aspect, the center frequency difference between adjacent input filters is determined and the number of filters to be interpolated between adjacent input filters are determined as a function of the difference in center frequencies between adjacent input filters.

In the embodiment disclosed, the number of filters to be interpolated between adjacent input filters are set equal to the number of integer frequency changes between adjacent input filters minus one. The envelope frequencies of the interpolated filters between adjacent input filters are determined by a linear interpolation between the envelope frequencies of adjacent input filters. The start times of the interpolated filters between adjacent input filters are determined by placing the interpolated filters at equally spaced time intervals between adjacent input filters.

In forming the set of time-variant filters, the time responses of each of the filters is calculated to their respective lengths. The time responses then are truncated with a truncator having the same length as the time responses and defined in the following manner:

where Tis the filter Iength'in time and t is time for the center of each filter. Following truncation, DC removal and energy normalization are carried out.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates the frequency spectrum of a bandpass rectangular filter;

FIG. 2 illustrates the frequency spectrum of a bandpass trapazoidal filter;

FIG. 3 illustrates in schematic form input filters of a set of time-variant filters;

FIG. 4 is a computer print-out of a set of input filters and a complete output set of time-variant filters;

FIG. 5 is a plot of the variation with time of the center frequencies and envelope frequencies of the filters of FIG. 4;

FIG. 6 illustrates a completed set of properly adjusted time responsesof the filters of FIG. 4 as they exist side by side in a filter storage array;

FIG. 7 is an amplitude-frequency plot of a 20-60 sinc filter;

FIGS. 8A and 8B illustrate the shape of two curves employed to obtain the truncator of FIG. 8C;

FIG. 9A is a plot of the Fourier transforms of the two curves of FIGS. 8A and 8B;

FIG. 9B is a comparison plot of the Fourier transforms of a cosine truncator and the special truncator of the present invention;

FIG. 10 illustrates the result of using the special truncator of the present invention on a 20-60 hertz sinc filter, as well as the results obtained by using several other common truncators;

FIGS. 11 and 12 illustrate a flow diagram of the process of the present invention;

FIG. 13 illustrates the time response for a low-pass sinc filter;

FIG. 14 illustrates the frequency response of the filter of FIG. 14;

FIG. 15 illustrates a low-pass sinctime response and l lrrt envelope;

FIG. 16 illustrates a time scale change between lowpass sinc filters;

FIG. 17 illustrates lobe numbers of low-pass sinc filters;

FIG. 18 illustrates the lobe number vs. decay ratio of low-pass sinc filters; and,

FIGS. 19A-19C illustrate band-pass sinc construction via center frequency and envelope.

DETAILED DESCRIPTION OF THE INVENTION Referring to FIG. 1, there is illustrated the frequency spectrum of a band-pass rectangular filter. FIG. 2 illus trates the frequency spectrum of a band-pass trapazoidal filter. In the trapazoidal filter, the frequencies fl and f4, are the cutoff frequencies while the frequencies f2 and f3, are the corner frequencies. The trapazoidal filter reduces to a rectangular filter by making f1 equal f2 and f4 equal f3. The frequency f0 is the center frequency. In the case of the band-pass rectangular filter, fc may be defined as one-half the band width while in the case of the band-pass trapazoidal filter, fc may be defined as the average half band-width. The term fc also may be defined as a low-pass sinc envelope frequency. This will be explained more fully subsequently.

In the time domain, the rectangular band-pass filter may be defined as a band-pass sine filter, while the band-pass trapazoidal filter may be defined as a bandpass sinc squared filter. As will be explained subsequently, one may view the time response of a bandpass sinc filter as obtained by modulating a carrier signal at the filters center frequency (f) by a low-pass sine filter, with a cut-off frequency of half the bandpass filters band-width (fc). Thus, a band-pass sinc filter has a low-pass sine filter envelope.

The band-pass sinc filters center frequency is given y NFZ= /2 (F2+F3) (l The low-pass sine envelope frequency may be defined as In the following description, NFZ and f0 will be referred to interchangeably as the center frequency. In the computer program, it is given the integer variable name NFZ. In addition, for purposes of the computer program, certain variables will be capitalized although referred to in certain portions of the specification in the small letter case.

A symmetrical sine-squared filter may be viewed as a center frequency carrier signal modulated by a low pass sinc filter whose frequency is the average one-half band width of the sine-squared filter and which in turn is modulated by another low-pass sinc filter whose frequency is quite low and acts, therefore, as a truncator.

In forming the desired set of time-variant filters, an input set of filters are first selected to be placed at their desired start times. The start times and the band-pass of the input filters are determined by analyzing the data, i.e., by frequency analysis, to determine the frequency of the data and where it changes whereby it can be determined where changes are needed in the input filters to adapt to the frequency changes. In the program disclosed, nine input filters may be selected for a given record. A record typically is 24 traces, however, it could comprise more or less traces. These traces may be CDP gathered, in a field format, or they may be stacked or unstacked. They are traces, however, that one desires to filter and in the embodiment disclosed they are a time series and in digital form.

Referring to FIG. 3, there is illustrated in schematic form input filters selected at times T1, T2, T3 and T4. In this FIG. record time increases toward the left. At the times selected, the band width and the type of filter desired to be inputted are known. Thus, the cutoff frequencies, f1 and f4 and the corner frequencies f2 and f3, are known. In the program disclosed, the input filters may be either band-pass sine filters or band-pass sinc squared filters. In addition, they may be interchanged in a given set of time-variant filters to be determined.

In FIG. 3, the center or carrier frequency of the input filters is illustrated by the crossed-hatched traces while the envelope frequency is illustrated by the curved dotted traces. The figure illustrates only one-half of the filters in the time domain. In reality, the filter lengths will be along the line 90. The filters are rotated 90 in FIG. 3 to illustrate their relative lengths.

In the program disclosed, the center frequency NFZ and the envelope frequency PC of the 1th and Ith+l input filters are calculated. This is done in accordance with Equations (1) and (2) respectively. The length of the Ith filter also is determined.

Additional filters, then, are interpolated between the Ith and Ith-l-l input filters. The number of filters to be interpolated is determined as well as their envelope frequencies, their cut-off and comer frequencies, their start times, and their lengths. The Ith filter is incremented and the process repeated until all of these parameters have been computed for the complete set of time variant filters.

The number of filters to be interpolated between the Ith and Ith+1 input filters is dependent upon the difference in center frequency between these adjacent input filters. In the program disclosed, this number is set equal to the number of integer center frequency changes between adjacent input filters minus one. This may be expressed in the following manner:

Where N is the number of filters to be placed between the Ith and the Ith+l inputs, NFZ(I) is the center frequency at the Ith input, while NFZ(I+1) is the center frequency at the Ith+l input.

For example, in FIG. 3, between T1 and T2, the difference in center frequency is 5 hertz. Thus, N is equal to 4, whereby four filters are to be interpolated between the first two input filters. The center frequency difference between interpolated filters is equal to l hertz.

A further explanation is given by reference to FIG. 4. This figure is a computer printout of a set of input filters and times and a complete output set of time-variant filters including the input filters and interpolated filters. In this example, six input filters were selected at times of 800, 1,400, 1,800, 2,000, 2,500, and 4,000 mils. The input set of filters were band-pass sinc filters and their cutoff and corner frequencies are shown under F1, F2, F3, and F4. Referring to the first two input filters selected at time 800 mils and 1,400 mils, their center frequencies were calculated to be 38 and 28 hertz, respectively. The difference in center frequencies thus is equal to 10. The number of filters to be interpolated between the first two input filters, thus, is equal to 10 minus 1, which is 9. Each filter will be 1 hertz apart in center frequency from its neighbors. Thus, the interpolated filters from the first input filter will have center frequencies respectively of 37, 36, 35, 34, 33, 32, 31, 30, and 29 hertz.

The envelope frequencies FC of each of the interpolated filters, are obtained by linearly interpolating N times between FC(I) and FC(I-l-l). FC(I) is the en velope frequency of the Ith input filter, while FC(I+1) is the envelope frequency of the Ith+l input filter. As can be seen in FIG. 4, the envelope frequency of the first input is 22.50 hertz while that of the second input is 17.50 hertz. The difference in envelope frequency is 5 hertz. Thus, the difference in envelope frequency between the interpolated filters (between the first two input filters) is equal to 0.50 hertz.

The frequencies F1, F2, F3, and P4 of the input set of filters is known from the input filters selected. In the program disclosed, in the same loop that the envelope frequencies are being interpolated for the interpolated [T(I+l)T(I)]/(N+bl) 4 T(l) is the time of the Ith input filter and T(I+l) isthe time of the Ith+l input filter. Referring to FIG. 4, it can be seen that the times difference between the first input filter and the second input filter is 600 mils. By dividing N+l into 600, one obtains a 60 mil separation between interpolated filters. Thus, the interpolated filters, between the first two input filters, are placed at 860, 920, 980, 1,040, 1,100, 1,160, 1,220, and 1,340 mils.

The length of each filter in time is determined according to the relation:

K/FC 5 In this expression, K is a constant for all of the filters. PC is the envelope frequency for the specific filter of which the length is being calculated. Thus, since K is constant for all of the filters, a consistent filter description will be maintained for all the filters in the set to be determined. In FIG. 3, the constant employed is 3, which defines 3 lobes of the envelope frequency. Thus, each filter of FIG. 3 is calculated to three lobes of its low-pass envelope frequency.

Since the length of each filter is inversely proportional to its envelope frequency, each filter will be calculated to the same percentage decay point. The lengths may be different but the percentage decay of each filter is the same. Thus, each filter will have the same shape and represent the same percentage of the total ideal filter. This will be described in more detail subsequently. Therefore, each filter will be very similar to its neighbor, whereby a smoothly varying set of filters with record time will be obtained. The similarity is sufficient to completely eliminate any discontinuities in the output data.

When the time responses for these filters are calculatcd using the above criterian and viewed in the manner of FIG. 3, they represent a smoothly varying continuum of filters with record time. In FIG. 3, the interpolated filters are illustrated by the vertical and horizontal dashed lines. The horizontal dashed lines represent the lengths of the interpolated filters. This figure is not a perspective drawing so that there is no foreshortening and the horizontal time scales, (filter lengths) are all to one scale. The amplitudes have been normalized to one value.

The filters of FIG. 3 were calculated to three lobes while those of FIGS. 4-6 are calculated to two lobes.

The filter lengths of the filters of FIGS. 4-6 were calculated to sample lengths by the following relation:

Number of POlIltF2,000/( FC-ISAMP) 0.5 s

The time of a low-pass sinc filter at the end of its first lobe at one-half of its time response is equal to .FC. At the end of its second lobe, at one-half of the time response, time is equal to l/FC. Thus, the full length in time of a low-pass sinc filter, at the end of the second lobe, is equal to 2/FC. In order to convert to sample length, one may divide 2/FC by ISAMP/I000. Where ISAMP is the time interval between samples in mils, the value 0.5 is added in order to round off rather than truncate.

FIG. 5 is a plot of the variation with time of the center frequencies and envelope frequencies of the filters of FIG. 4. The positions of the input filters are along the vertical dashed lines. The interpolated filters are places between the input filters. Note that between the input filters at 1,400 and 1,800 mils, there is no difference in center frequency or envelope frequency. Hence, filters are not interpolated between these inputs. Note also that the center frequency vs. record time curve ranges both up and down and that the band width ratio (B.W.R.) varies and is not constant.

After the process has been incremented through all of the input filters, there is known the total number of filters in the set, their start times, their center frequencies, their envelope frequencies, their lengths, and their cut-off and corner frequencies F 1, F4, and F2 and F3.

The next step in obtaining the desired set of timevariant filters is to calculate the time responses of each filter. These responses are calculated out to the proper filter length defined by K/FC. In the case of the sinc band-pass filters, the time responses are calculated in accordance with expression 7, while in the case of the sine squared band-pass filters, the time responses are calculated in accordance with the expression 8.

FIG. 6 illustrates a completed set of properly adjusted time responses of the filters of FIG. 4 as they exist side by side in the filter array (where the completed time responses are stored).

Calculating the time responses to their proper length and abruptly stopping calculation at that point is the same as applying a rectangular truncator to the time responses. The application of a rectangular truncator to the time responses, however, gives rise to notching inside the pass-band and peaks outside of the passband. This is illustrated in FIG. 7, which is an amplitude-frequency plot for a 20-60 sinc filter, the time response for which was calculated to the end of the fourth envelope lobe and abruptly stopped. The truncation time was mils each side of t equal zero, or 200 mils. Since the envelope (fa-=20 hertz) drives the time response to zero every 25 mils, hence, zero at plus or minus 100 mils, none of the effects seen in FIG. 7, are due to the end samples being non-zero.

One method of minimizing the notching effects in a filter, such as that in FIG. 7, is to convolve the frequency spectrum with another (appropriate) spectrum and use the convolved (smoothed) output. Since convolution in the frequency domain is equivalent to multiplication in the time domain, one needs merely to find the proper truncator and multiply it with the time series term by term.

Several truncators were considered and one which produced vastly improved results is defined by the following expression:

In expression (9), T is the total filter length (i.e., truncation period) and t is time along the filter, (t equals zero at the center of the filter). The first factor is a cosine truncator. It is a cosine wave centered at the filters center with a period of twice the total filter length. Hence, only half of one cycle is used.

The second factor in expression (9) is a straight line with the level of 1 at t= and a value of 0.77 at both edges of the filter.

FIGS. 8A and 8B show the shape of the two factors while FIG. 8C shows the resulting truncator. Since the truncator is the product of a cosine truncator with a linear truncator, the name COSLIN seemed appropriate.

FIG. 9A shows plots of the Fourier transforms of the two factors, while FIG. 9B is a comparison plot of the Fourier transforms of the cosine and COSLIN truncators.

The benefit of the COSLIN function over the cosine truncator stems from the considerably reduced second lobe of the COSLIN" transform. Notice, too, that the main lobe of the COSLIN transform is only slightly different from the cosine spectrum.

Bear in mind that multiplying an ideal filter time response by a truncator is equivalent to convolving the transforms of the two time functions in the frequency domain. It is the structure of the main lobe which largely determines the physically realizable filters roll-off rate while the relative size of the second lobe strongly influences the rippling inside and outside the passband. It is the act of convolving the second lobe through the ideal filter spectrum which provides the ripple effect.

The convolution of the linear functions transform with the cosine transform results in the considerably reduced second lobe seen in FIG. 9B.

The result of using the COSLIN" truncator on a -60 hertz sinc filter is presented in FIG. 10, along with the results obtained by using several common truncators, the latter of which were a rectangular truncator, a trapazoidal truncator, and a triangular truncator.

Truncating with the COSLIN" truncator function shows considerable improvement within the pass-band over the other truncators, while, at the same time, the reject zones drop close to zero and stay there. The rejection rate lies midway between the triangularly and the trapazoidally truncated responses.

At this point, the following algorithm summarizes the process in obtaining the set of time-variant filters. This algorithm takes the input set of filters at their respective start times and calculates NFZ, FC pairs for each input filter. It then places additional pairs in the set to fill out the intermediate, integer values of NFZ. The number of pairs obtained between the Ith and the Ith+l input is N=NFZ(I)NFZ(Il-l )-l (l0) These are to be placed [T(I+l)T(I)]/(N+l) mils apart in time. The FC values are obtained by linearly interpolating N times between the FC(I) and FC(l+l) through this same time interval. The FC values are used to obtain the proper filter length according to the relation K/FC. The time responses of the filters then are calculated to their proper lengths and truncated with the following truncator:

The time responses of the filters are then DC corrected and energy normalized. D. C. Bias in a digital filter occurs when the discrete, finite time series representing that filter has other than a zero mean. It is corrected by summing the total series (to obtain a net area) and dividing this sum by the number of samples in the filter to arrive at an average bias per sample. This value then is subtracted from each sample in the filter. The D. C. removal is done after the filter has been truncated so that the end sample actually is raised, (or lowered), from zero. If, as in the program under discussion, the filter times series is taken sufficiently long, the effect of raising the end sample by the filters average bias per sample is extremely small, and the end sample may be zeroed out once more with impunity.

When filtering a single-time series with more then one filter, one may encounter the problem of energy differences.

For the sake of this discussion, the energy of a filter is defined as the sum of the squared values of its time response. This is related, by Parsevals theorum to the sum of the squared values of its amplitude response. In other words, the energy in the time domain is related to the energy in the frequency domain. This may be defined as:

T Energy: K 2 6) i If one does not normalize each of the filters to unit energy, (or some other constant value of energy), the filtered output may well display amplitude contrasts. That is to say, the filter output will contain average amplitude levels relating to the energies of the different filters rather than the input time series.

In the algorithm under discussion, each filter has an energy only very slightly different from that of its adjacent filters so that the contrast, even without energy normalization would be barely discernable. However, the contrast between a high frequency filter at the beginning of the time series, (traces), and a low frequency filter at the end of the trace might well be pronounced. This is completely overcome by actually calculating the energy from the above equation and dividing each sample in the filter by the square root of this value, so that the normalized filter has unit energy.

In FIG. 4, the power values shown is the energy as calculated by the sum of the squares of the truncated time response of each filter. The area values represent the area in the frequency domain of the corresponding ideal filter.

The process of the present invention in forming the desired set of time-variant filters has advantages in that filters very similar to its neighbor are obtained, thereby avoiding discontinuities on the output when convolving with an input time series. In addition, the start times of the input filters may be exactly specified, and the bandwidth ratios do not have to be maintained constant. Sine or sinc-squared filters may be used interchangeably in a given set and the frequencies of the filters may increase or decrease with record time. The filters may be calculated to relatively long lengths which results in a filter being closer to the ideal filter. Moreover, the new type of truncator gives improved results and high speed filtering may be obtained with the complete set of filters.

l0 house-shaped figures (Le, 17, 18, 22, and 23) are the note numbers on the computer program. A description of the flow diagram and computer program will now be given.

The computer program is in Fortran language and it is adapted to be operated in a CDC 6600 General Purpose Digital Computer. The computer program is as follows: i

(1) PROGRAM Z1210INPUTOOUTPUTOTAPE49) COMMON/AfiZ'l/WB I IDECO ICHANIOPl 'OPZ 0OP30 IEOPR rIEOPHQ ISAMPoJRBUFlBO) a 1LOC INUMPRO CQMMON//INFCAI13IIRECAIZQOOIDITRQIZOOQ) DIMENSION FA 110) QFBHIOI rFCIllO) 9FDI110I TI110HFFAI80) IFFBIBOI. IFFCISO) IFFDISOI oITlBOhIDFlBOl QWRKB(2152)oTTlBOhNDFIZfJOl 1 oNUFILHlcFRAYIlbO) oNRKBI2152l TYPE INTEGER WRKB LABLE 1OHTOINP IEOPR=0 IEOPW=0 S LOC O S ISAMP'Z CALL SIX27I1|0000000I CALL SIXZ'HboOQOoOOLABLE) READ 300 a IOFRI 0 IOLRI o IOFROQMABLEILENGTHI ISAMPQ IFLAG NSAMP LENGTH! I SAMP READ 3199(NUFILIIHI 1016) IBEGIN 2 S IWIND 202 S ISTOP I NSAMP-15O PRINT 301 PRINT 3170IOFRI91OLRI OIOFROOMABLENSAMP!ISAMPIIFLAG PRINT 3190(NUFILIIMI' 1016! IFtIFLAGoEQoOlIFLAG 1 (2) KFLAG 9*IFLAG READ 3020(FAiII9F8IIOFCIIOFDIIIOTIIIOI'ICKFLAGI PRINT 303 PRINT 304 PRINT SOSHTIIIQFAH)IFBIIOFCIIIQFDIIIOI=1OKFLAGI FFAiKl=FAlII S FFB(Kl=FB(I) S FFCIKI FCII) 5, FFDIKI FDIII FCC .ZSHFDlIl-t-FCHl-FBHl-FMIH 6 7 3 IF(IDF(Kl/2*2.EQ;IDF(KH IDFIKI IDFHKH'I IFlIDFlKhGTulSIlIDFIKI I 151 a) m hen-9:00 TO 10 IFlFBtHlhEQ-OlGO To 10 (9) cm .zsflro t 1+1r+r=cn+1 l-FB( 1+1 l-FAl 1+1) l 0) NNFZ .SHFBtH-IHFCHH) 1+.5 (11) NM NFZ-NNFZ IF (NMeNEoO 160 TO 6 r: n+1 so To 9 1 2 PFFUI 1./Fcc1./c0|= NMI tzoooursmpn rruzhs NM IABS(NM) 1+ s AT lo/NM AF- (FAlIl-FMHHHA BF (FB( 1 l-FBt 1+1) HAT CF (FC( 1 )--Fc( 1+1: HAT 0F= (FM 1 l-FDt 1+1) HAT ornun-nun CCF (FCC-CDFHAT NABS- IABSINN) S MJ-r NABS+K-1 5 JJ- R41 5 L -NM/NAB$ ,CONST CONST-o-AVG POWER AvmAREA mum KOUNTHDFlIl suaalZMSUPP-t-hi/IDFH) zupp CALL xmromonzso: .2 J 1mm FRY (FRAY l J)-SUPPl*ZUPP+a5 ISTAT O CALL SAPP(OOB00 CALL XRCL lFiISTATeEQuQlGO TO 04 CONTINUE Referring to FIG. 11, the input data is read and printed as illustrated at 100. In the computer program, the variables in the dimension statement include FA, F B, FC, and FD. These are the input filters arrays and correspond with the frequencies F1, F2, F3, and F4, as explained previously. T is the input time array. FFA, FFB, FFC, and FFD, are the output arrays of the set of interpolated filters which include the input filters and the interpolated filters. These variables for each filter corresponds with F1, F2, F3, and F4. IT is the start sample array. IDF is the filter length array. WRKB is a temporary trace array. TT is time corresponding to IT. NDF is the filter response integer array. NUFIL is the first record number in the new filter sequence array. FRAY is the filter response in floating point. NRKB receives the packed WRKB.

Still referring to the computer program at note number 2, IFLAG is the number of filter sets to be read in with a maximum of 12. Each set may have nine input filters. Not all nine filters need to be used. KFLAG is equal to the total number of input filters.

Referring again to FIG. 11, Loop 9 is illustrated as beginning at 101. In the computer program, Loop 9 is illustrated as beginning at note number 3. This loop determines the output set of interpolated filters from the input set. It determines IT, IDF, NFZ, FC and the frequencies FFA, FFB, FFC, and FFD for each of the filters of the output set of the interpolated filters.

Referring to the computer program, the center frequency for the lth input filter is determined at note number 4, while the envelope frequency of the Ith input filter is determined at note number 5. At note number 6, the input values are placed in the output set defined by the K index. At note number 7, the filter length in samples is determined for the Ith input filter. Atnote number 8, control is transferred to statement number 10 out of the loop if the index of the input filter in question is equal to 9. In this instance, no more filters are to be interpolated.

CALL PACK(NDF( I l uNDFlIloKLMl oOuOoNDFiIloKLMoluOoOoISTAToIolall At note number 9, the envelope frequency of the Ith+l filter is determined while the center frequency of the Ith+l filter is determined at note number 10.

The operations identified by note numbers 4-10 are illustrated in part as being done at 102 in FIG. 1 1.

At note number 11, the number of integer changes in center frequencies are determined between the Ith and the Ith+l input filters. This is illustrated as being done at 103 in FIG. 11. This center frequency difference has been assigned the variable name NM.

In the flow diagram of FIG. 11, a decision is made at 104 to determine if the frequency difference NM is not equal to zero. If the frequency difference is not equal to zero, then control is transferred to statement 6 in the computer program. If the center frequencies of the Ith and the Ith-H inputs are the same, then a determination is made at 105 as to whether the second frequencies of the Ith and the Ith-l-l input filters are the same. These second frequencies are corner frequencies and correspond to F2 as explained previously. If the corner frequencies are different, then the difference in envelope frequencies between the Ith and the Ith+l input filters are employed to obtain NM. Thisis illustrated at 106 in the flow diagram. Control then is transferred to statement 6 of the computer program. If the center frequencies are the same and the corner frequencies are the same, then the Ith and the Ith+l input filters are taken to be equal. This is illustrated-at 107 in the flow diagram. The filter number K then is incremented at 108 and control is transferred to statement 9 in order to go back into the loop.

Thus, if the center frequencies of the Ith and the lth+l input filters are the same, a check ismade to determine whether the second corner frequencies are the same. If they are the same, then an assumption is made that the two filters are exactly alike and there will be no interpolation of filters between the twoinput filters under consideration. If the corner frequencies are different, however, the envelope frequency difference between the two input filters are employed to obtain the number of filters to be interpolated between the two input filters. This checking and decision making is done in the program beginning at note numbers 12 and 13.

At 110 in the flow diagram, the constants to be used in the interpolation loop D08 are factored out whereby they may be multiplied by the appropriate terms outside of the loop DO 8 rather than inside this loop. In the computer program, the factoring to obtain the constants is done beginning at note number 14.

In the flow diagram, at 111 and 112, loop 8 from DO 8 to statement 8 carries out an interpolation to find the envelope frequency and FFA, FFB, FFC, FFD for each interpolated filter between the lth and the Ith+l input filters. Also determined in loop 8 are the start times and length of each interpolated filter between the Ith and Ith+l input filters. These operations are carried out beginning at note number 15. At 111, in FIG. 11, a different variable is used to keep track of the K index.

At 113 in the flow diagram, control is transferred back to the beginning of the DO loop, DO 9, whereby the next input filter is picked and similar calculations and interpolations are carried out between the Ith and Ith-i-l input filters.

The variable IT is the array used to specify the start times. At 1 14 in the flow diagram, the first input filter is set or adjusted to start filtering from the beginning of the record (sample number 1) down to its specified start time, and, in fact, slightly beyond to the trace sample prior to the start of the first interpolated filter. In addition, at 114 the number of filters K is set equal to KAY. In the program, the total number of filters for a given set has an upper limit of 80. In the computer pro- 35 dotted box 121 in the flow diagram. Initially, loop 14 45 calculates only one-half of the response of the Ith filter. (In loop 14, the index for the complete set of interpolated filters is I). The initial calculation does not include the center point. Subsequently, the response is flipped to determine the other half and the center point filled in. In loop 14, just prior to statement 33, a check is made to determine if the first two frequencies, of the filter being considered, are equal. If they are equal, the filter is designated a sine filter and one-half the time response for that filter is calculated in loop 34. If the first two frequencies of the filter are not equal, the filter is designated a sinc-squared filter and one-half of its time response is calculated in loop 38. At note number 18, which corresponds to statement 39 of the computer program, constants Pl-IY and ALIN are determined and which are to be used subsequently for determining the truncator. Also, variables ZUPP and SUPP are set to equal to zero. ZUPP is a variable name used for the energy normalization factor which is used on the time responses, while SUPP is a variable name used for DC correction of the time responses.

At DO loop, DO 500 indicated to begin at 122'in the flow diagram and extending through statement 500 indicated at 123, factors for truncation, power calculation, and DC calculation are determined from the previously calculated half response. These calculations are carried out in the computer program in loop 500 ending at note number 19.

At 124 in the flow diagram, the DC correction factor for the total response is calculated. At 125 in the flow diagram, the energy normalization factor for the total response is calculated and multiplied by 2 These operations are done in the computer program beginning at note number 20. Multiplication by 2 converts the data to a large number so that when it is converted to integer form by truncation for use in the convolution box, the truncated part is insignificant.

DO 42, beginning at 126, in the flow diagram, fills in the total response and DC corrects and normalizes. In addition, in the array NDF, where the time responses are stored, the starting address is indexed. In the computer program, these operations are done beginning with note number 21. At note number 22, in the computer program, the center of the response is filled in and the ends are zeroed out. At note number 23 of the computer program, the response is packed and loaded into the convolution box and control is returned to the beginning of DO 14 to determine the response of the next filter.

As the filters of the set are calculated, they are stored in the convolution box and kept there until that particular set of filters is calculated in full. Filtering is carried out by sending the records through one trace at a time. In the computer program disclosed, the number of filters per set has a maximum limit of 80. This limit may be varied, how ever. A difi'erent set of filters could be used for each record (which may comprise 24 traces) or a given set of filters may be used for a plurality of records. In the program as written, the number of times that the set of filters may be changed is twelve. For example, if 100 records are to be filtered, then only 12 different sets of filters may be calculated to operate on those 100 records. This limit also may be varied.

When a set of filters is operating on a given trace, the first input filter will start with the first sample and operate on the samples to the filters assigned start time plus additional samples up to the start time of the first interpolated filter. At that point, the first interpolated 5O filter will take over and operate to the start of the second interpolated filter. Filtering carries on in this manner until the last interpolated filter is reached. This last interpolated filter will operate to the start time of the last input filter. The last input filter, in turn, will operate from its start time to the end of the record.

This is illustrated in FIG. 5. In FIG. 5, the horizontal lines extending from the F0 and Fe curves indicate the time interval through which each filter is applied. For example, the first filter of the completed set (which is also the first input filter) is designated as K=l. The next filter is designated as K=2. It is the first interpolated 

1. A method of forming a set of time-variant filters from an input set of filters having predetermined start times, for operating on a time series of seismic data, said method being carried out in an automatic computing system, comprising the steps of: determining the center frequency and envelope frequency of adjacent input filters of said input set, determining a number of filters to be interpolated between adjacent input filters, determining the envelope frequencies of the interpolated filters between adjacent input filters, and determining the length of the input filters and interpolated filters as inversely proportional to their envelope frequencies.
 2. A method of forming a set of time-variant filters from an input set of filters having predetermined start times, for operating on a time series of seismic data, said method being carried out in an automatic computing system, comprising the steps of: determining the center frequency and envelope frequency of adjacent input filters of said input set, determining the center frequency difference between adjacent input filters, determining a number of filters to be interpolated between adjacent input filters as a function of the difference in center frequencies between adjacent input filters, determining the start times and the envelope frequencies of the interpolated filters, and determining the length of the input filters and interpolated filters as inversely proportional to their envelope frequencies.
 3. The method of claim 2, comprising the step of: setting the number of filters to be interpolated between adjacent input filters as equal to the number of integer frequency changes between adjacent input filters minus one.
 4. The method of claim 2, comprising the steps of: determining the envelope frequencies of the interpolated filters between adjacent input filters by a linear interpolation between the envelope frequencies of adjacent input filters, and determining the start times of the interpolated filters between adjacent input sets by placing the interpolated filters at equally spaced time intervals between adjacent input filters.
 5. The method of claim 4, comprising the step of: setting the number of filters to be interpolated between adjacent input filters as equal to the number of integer frequency changes between adjacent input filters minus one.
 6. A method of forming a set of time-variant filters from an input set of filters having predetermined start times, for operating on a time series of seismic data, said method being carried out in an automatic computing system, comprising the steps of: determining the center frequency NFZ and envelope frequency FC for the Ith and Ith+1 input filters of said input set, determining a number of filters N to be interpolated between the Ith and Ith+1 inPuts in the following manner: N NFZ(I) -NFZ(I+1)-1 where NFZ(I) is the center frequency of the Ith filter and NFZ (I+1) is the center frequency of the Ith+1 filter, linearly interpolating envelope frequency values FC, N times between FC(I) and FC(I+1), where FC(I) is the envelope frequency of the Ith filter and FC(I+1) is the envelope frequency of the Ith+1 filter, placing said number N of interpolated filters (T(I+1)-T(I))/(N+1) mils apart in time, between the Ith and Ith+1 inputs, where T(I) is the start time of the Ith input and T(I+1) is the start time of the Ith+1 input, determining the length of the input filters and interpolated filters as inversely proportional to their envelope frequencies FC, calculating the time responses of each of said filters to their respective lengths, and truncating the time responses with a truncator having the same length as said time responses and defined in the following manner: cos(( pi t)/T) . ( 1-(0.46t)/T) where T is the filter length in time and t is the time from the center of each filter.
 7. The method of claim 6, comprising the step of normalizing the truncated time response of each filter by dividing each sample of the truncated time response by the square root of the sum of the squared values of each sample.
 8. The method of claim 6, wherein the length of each filter is determined by use of the following relationship: K/FC where K is a constant.
 9. A method of forming a set of time-variant filters from an input set of filters having predetermined start times, for operating on a time series of seismic data, said method being carried out in an automatic computing system, comprising the steps of: determining the center frequency and envelope frequency of adjacent input filters of said input set, determining the center frequency difference between adjacent input filters, filling in intermediate filters between adjacent input filters, determining the number of intermediate filters to be filled in between adjacent input filters as a function of the difference in center frequencies between adjacent input filters, determining the start times and the envelope frequencies of the intermediate filters, and determining the length of the input filters and intermediate filters in accordance with the relationship, K/FC, where K is a constant, and FC is the envelope frequency of the corresponding filters. 